#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include<math.h>
#include <stdbool.h>
//int main()
//{
//	
//	double area;
//	float a, b, c;
//	scanf("%f %f %f", &a, &b, &c);
//	float s;
//
//	s = (a + b + c) / 2;
//
//	area = sqrt(s * (s - a) * (s - b) * (s - c));
//
//	printf("triangle's area = %.02lf", area);
//
//	return 0;
//}

bool isPrime(int n)
{
	if (n <= 1)
	{
		return false;
	}
	for (int i = 2; i <= sqrt(n); i++)
	{
		if (n % i == 0) return false;
	}

	return true;
}

//int main()
//{
//	int n;
//
//	while (1)
//	{
//		scanf("%d", &n);
//		if (isPrime(n))
//		{
//			printf("is Prime!\n");
//		}
//		else
//		{
//			printf("is'nt Prime!\n");
//		}
//	}
//
//	return 0; 
//}

//int main()
//{
//
//	int n;
//
//	while (scanf("%d", &n))
//	{
//		if ((n % 4 == 0 && n % 100 != 0) || n % 400 == 0)
//		{
//			printf("Yes\n");
//		}
//		else
//		{
//			printf("No\n");
//		}
//	}
//
//
//	return 0;
//}

//int main()
//{
//	int n;
//	while (scanf("%d", &n))
//	{
//		switch (n)
//		{
//
//
//		default:
//			break;
//		}
//
//	}
//
//	return 0;
//}

//int main()
//{
//	int i;
//	for (i = 1; i++ <= 5;);
//
//	printf("%d", i);
//
//	return 0;
//}

//int main()
//{
//	float a = 2, b = 1, c = 0;
//	float s = a / b;
//
//	for (int i = 1; i < 20; i++)
//	{
//		c = b;
//		b = a;
//		a += c;
//
//		s += a / b;
//	}
//	printf("%f", s);
//
//	return 0;
//}

//int main()
//{
//	int n, t, number = 20;
//	float a = 2, b = 1, s = 0;
//
//	for (n = 1; n <= number; n++)
//	{
//		s = s + a / b;
//		t = a;
//		a = a + b;
//		b = t;
//	}
//
//	printf("%f", s);
//
//	return 0;
//}

//int main()
//{
//
//	return 0;
//}

//int main()
//{
//	int a[5] = { 0 };
//	printf("%d", a[4]);
//
//	return 0;
//}

//int main()
//{
//	int a[20] = { 1, 1 };
//
//	for (int i = 2; i < 20; i++)
//	{
//		a[i] = a[i - 1] + a[i - 2];
//	}
//
//	printf("%d", a[19]);
//
//	return 0;
//}

//int main()
//{
//	int a[2][3] = { { 1,2,3} , {4,5,6} };
//	int b[3][2] = { 0 };
//
//	for(int i )
//
//	return 0;
//}

//int main()
//{
//	int _max = 0, l, r;
//	int a[3][4] = { {1,2,3,4},{8,7,6,5}, {2,4,6,2} };
//
//	for (int i = 0; i < 3; i++)
//	{
//		for (int j = 0; j < 4; j++)
//		{
//			if (a[i][j] > _max)
//			{
//				_max = a[i][j];
//				l = i; r = j;
//			}
//		}
//	}
//
//	printf("%d\n", _max);
//	printf("l = %d, r = %d", l, r);
//
//	return 0;
//}

#include <string.h>

//int main()
//{
//	char c[] = "hello";
//
//	printf("size = %zd\n", sizeof(c) / sizeof(c[0]));
//
//	printf("strlen = %zd\n", strlen(c));
//
//	for (int i = 0; i < strlen(c); i++)
//	{
//		printf("%c", c[i]);
//	}
//
//	printf("\n%s", c);
//
//	return 0;
//}

//int main()
//{
//	/*char c1[20] = "hello "; char c2[] = "world!";
//	strcat(c1, c2);
//	printf("%s\n", c1);*/
//
//	/*c1[20] = "hello "; c2[7] = "world!";
//	strcpy(c1, c2);
//	printf("%s\n", c1);*/
//
//	/*char* c3 = "hello "; char* c4 = "world!";
//	printf("%s\n", c3);
//	printf("%s\n", c4);
//
//	c3 = "hello "; c4 = "world!";
//	strcat(c3, c4);
//	printf("%s\n", c3);*/
//	/*char c1[50] = "hello ";  char* c2 = "world!";
//
//	strcat(c1, c2);
//	printf("%s", c1);*/
//
//	/*char c1[50] = "hello ";  char* c2 = "world!";
//
//	strcpy(c1, c2);
//	printf("%s", c1);*/
//
//	char* c1 = "hello ";  char* c2 = "world!";
//
//	
//	printf("%d", strcmp(c1, c2));
//
//	//c1[10] = "hello "; c2[10] = "world!";
//	//printf("%d\n", strcmp(c1, c2));
//
//	//c1[10] = "hello world!";
//	/*strupr(c1);
//	printf("%s\n", c1);
//	strlwr(c1);
//	printf("%s\n", c1);*/
//
//	return 0;
//}

//int main()
//{
//	char c1[200];
//	gets(c1);
//
//	int wordSum = 0;
//	char c;
//	for (int i = 0; (c = c1[i]) != '\0'; i++)
//	{
//		if (c == " ")
//		{
//			wordSum += 1;
//		}
//	}
//
//
//	printf("wordSum = %d\n", wordSum);
//
//	return 0;
//}

//int main()
//{
//	int a[3][2] = { 0 };
//	int x = 1;
//	for (int i = 0; i < 3; i++)
//	{
//		for (int j = 0; j < 2; j++)
//		{
//			a[i][j] += x;
//			x += 2;
//		}
//	}
//
//	for (int i = 0; i < 3; i++)
//	{
//		for (int j = 0; j < 2; j++)
//		{
//			printf("%02d ", a[i][j]);			
//		}
//		printf("\n");
//	}
//
//	return 0;
//}

#define SIZE 10

//int main()
//{
//	int n = 5;
//	char c[SIZE];
//
//	int a[2][SIZE] = {0};
//
//	gets(c);
//
//	printf("%s", c);
//
//
//	return 0;
//}

//int main()
//{
//	char str[100] = "";
//	gets(str);
//	int sum = 0; char c;
//	
//	for (int i = 0; i < strlen(str); i++)
//	{
//		if (str[i] == ' ')
//		{
//			sum++;
//		}
//	}
//	
//	printf("%d\n", sum + 1);
//		
//	//printf("%d", strlen(str));
//
//	return 0;
//}

//#include <stdio.h>
//
//void test()
//{
//	printf("my book is good book!\n");
//
//}
//
//
//int main()
//{
//
//	test();
//	return 0;
//}

//int _Max(int *a, int _size)
//{
//	int _max = a[0];
//	for (int i = 0; i < _size; i++)
//	{
//		if (_max < a[i])
//		{
//			_max = a[i];
//		}
//	}
//
//	a[0] = a[8];
//
//	return _max;
//}
//
//void _Swap(int* b, int* c)
//{
//	int d = *b;
//	*b = *c;
//	*c = d;
//}
//
//int main()
//{
//
//	int b = 1, c = 2;
//
//	int a[] = { 1,2,3,4,5,6,7,8,9 };
//
//	int size = sizeof(a) / sizeof(a[0]);
//
//	//printf("%d\n", size);
//
//	printf("_max = %d\n", _Max(a, size));
//	printf("a[0] = %d\n", a[0]);
//
//	_Swap(&b, &c);
//	printf("b = %d, c = %d\n", b, c);
//
//}

//void test(char s[], int size)
//{
//	char i;
//	int l = 0, r = size - 1;
//	while (l < r)
//	{
//		i = s[l];
//		s[l] = s[r];
//		s[r] = i;
//		l++;
//		r--;
//	}
//}
//
//int main()
//{
//	char c[] = "hello world!";
//
//	printf("%s\n", c);
//	printf("strlen = %zd\n", strlen(c));
//	printf("size = %zd\n", sizeof(c) / sizeof(c[0]));
//
//	printf("%c\n", *c);
//
//
//	printf("%c\n", c[1]);
//
//	size_t size = sizeof(c) / sizeof(c[0]) - 1;
//	test(c, size);
//
//	printf("%s\n", c);
//
//	return 0;
//}

//int test(int a[][4], int line, int rank)
//{
//	int _max = a[0][0];
//	for(int i = 0; i < line; i++)
//	{
//		for (int j = 0; j < rank; j++)
//		{
//			if (_max < a[i][j])
//			{
//				_max = a[i][j];
//			}
//		}
//	}
//
//	return _max;
//}
//
//int main()
//{
//	int a[][4] = {
//		{1,2,3,4},
//		{5,6,7,8},
//		{9,10,11,12}
//	};
//
//	int line = sizeof(a) / sizeof(a[0]);
//	int rank = sizeof(a[0]) / sizeof(a[0][0]);
//
//	printf("line = %d, rank = %d\n", line, rank);
//
//	printf("_max = %d\n", test(a, line, rank));
//
//
//	return 0;
//}


//int main()
//{
//
//	static i = 1;
//
//	i++;
//
//	printf("%d\n", i);
//
//	return 0;
//}

//bool _isPrime(int num)
//{
//	if (num < 2){
//		return false;
//	}
//
//	for (int i = 2; i * i <= num; i++)
//	{
//		if (num % i == 0){
//			return false;
//		}
//	}
//
//	return true;
//}
//
//
//int main()
//{
//	int a[100] = { 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 };
//
//	for (int i = 16; i < 100; i++)
//	{
//		a[i] = i + 1;
//	}
//
//
//	for (int i = 0; i < 100; i++)
//	{
//		if (_isPrime(a[i]))
//		{
//			printf("%2d YES\n", a[i]);
//		}
//		else
//		{
//			printf("%2d NO\n", a[i]);
//		}
//	}
//
//	return 0;
//}

#include <stdlib.h>

//struct Book
//{
//	char bookName[100];
//	int bookNum;
//	int bookPage;
//};
//
//
//int main()
//{
//
//	struct Book b;
//	b.bookNum = 2;
//	b.bookPage = 3;
//
//	struct Book* b2 = (struct Book*)malloc(sizeof(struct Book));
//
//	if (b2 != NULL)
//	{
//		strcpy(b2->bookName, "<< The OldMan and Sea >> ");
//		printf("%s\n", b2->bookName);
//		free(b2);
//	}
//
//
//	return 0;
//}


//int main()
//{
//	int a = 1;
//	int* A = &a;
//
//	printf("%d\n", *A);
//
//	int* B = (int*)malloc(sizeof(int));
//	if (B != NULL)
//	{
//		*B = 4;
//		printf("%d\n", *B);
//		free(B);
//	}
//
//	int* C = (int*)malloc(sizeof(int) * 10);
//	if (C != NULL)
//	{
//		for (int i = 0; i < 10; i++)
//		{
//			C[i] = i + 1;
//		}
//
//		for (int i = 0; i < 10; i++)
//		{
//			printf("%d ", C[i]);
//		}
//		printf("\n");
//	}
//
//	return 0;
//}


//void _Swap(int* a, int* b)
//{
//	int c;
//	if (*a < *b)
//	{
//		c = *b;
//		*b = *a;
//		*a = c;
//	}
//}
//
//void _Swap2(int* a, int* b)
//{
//	*a = *a ^ *b;
//	*b = *a ^ *b;
//	*a = *a ^ *b;
//}
//
//int main()
//{
//	int a = 1, b = 2;
//	_Swap2(&a, &b);
//	printf("%d, %d", a, b);
//}


//int main()
//{
//	int a[] = { 7,6,5,4,3,2,1 };
//
//	int* p = a + 5;
//
//	/*for (int i = 0; i < 7; i++)
//	{
//		printf("%d ", *(p++));
//	}*/
//
//	printf("%d\n", *(--p));
//	printf("%d\n", *(p--));
//
//	return 0;
//}

//void _Reverse_int(int* a, size_t size)
//{
//	size_t l = 0, r = size;
//	int mean;
//
//	while (l < r)
//	{
//		mean = a[l];
//		a[l] = a[r];
//		a[r] = mean;
//
//		l++; r--;
//	}
//}
//
//
//int main()
//{
//	int a[] = { 1,2,3,4,5,6,7,8 };
//
//	//size_t size = sizeof(a) / sizeof(a[0]) - 1;
//
//	int b[] = { 1,2,3,4,5};
//
//	size_t size = sizeof(b) / sizeof(b[0]) - 1;
//
//	_Reverse_int(b, size);
//
//	for (int i = 0; i < size + 1; i++)
//	{
//		printf("%d ", b[i]);
//	}
//	return 0;
//}

void MyStrcpy(char c1[], char c2[], size_t c1size, size_t c2size)
{
	for (size_t i = 0; i < c1size; i++)
	{
		c2[i] = c1[i];
	}

	for (size_t i = c1size; i < c2size; i++)
	{
		c2[i] = '\0';
	}

}


//int main()
//{
//	char c1[] = "hello";
//	char c2[] = "wwwwwwwwwwwwwwww";
//
//	MyStrcpy(c1, c2, strlen(c1), strlen(c2));
//
//	printf("%s\n", c2);
//	return 0;
//}


//int main()
//{
//	int a[] = { 1,2,3,4,5 };
//	int* A[5] = { &a[0], &a[1],&a[2], &a[3],&a[4] };
//
//	int** p = A;
//
//	for (int i = 0; i < 5; i++)
//	{
//		printf("%d ", **(p++));
//	}
//
//
//	return 0;
//}


//int main()
//{
//	int a[] = { 1,2,3,4 };
//
//	int *p = a;
//
//	int y = *p++;
//
//
//	int x = 1;
//	int z = x++;
//
//	printf("%d\n", z);
//	printf("%d", y);
//
//	return 0;
//}

//struct Date
//{
//	int year;
//	int mon;
//	int day;
//};
//
//void changeDate(struct Date* date)
//{
//	printf("please input the date you went to change : \n");
//	scanf("%d %d %d", &date->year, &date->mon, &date->day);
//}
//
//int main()
//{
//
//	struct Date* date = (struct Date*)malloc(sizeof(struct Date));
//	if (date != NULL)
//	{
//		date->year = 2024;
//		date->mon = 02;
//		date->day = 21;
//		printf("The original value of the date was %d-%d-%d\n",date->year,date->mon,date->day);
//
//		changeDate(date);
//		printf("The original value of the date was %d-%d-%d\n", date->year, date->mon, date->day);
//	}
//
//	return 0;
//}

//struct Student
//{
//	int num;
//	char name[20];
//	int score;
//};
//
//int main()
//{
//
//	struct Student* student1 = (struct Student*)malloc(sizeof(struct Student));
//	struct Student* student2 = (struct Student*)malloc(sizeof(struct Student));
//
//	printf("please input student1's info: \n");
//	scanf("%d %s %d", &student1->num, &student1->name, &student1->score);
//	printf("please input student2's info: \n");
//	scanf("%d %s %d", &student2->num, &student2->name, &student2->score);
//
//	printf("student1's Num = %d, name = %s, score = %d\n", student1->num, student1->name, student1->score);
//	printf("student2's Num = %d, name = %s, score = %d\n", student2->num, student2->name, student2->score);
//
//	return 0;
//}

//struct Student
//{
//	int num;
//	char name[50];
//	char sex[10];
//	int age;
//};
//
//
//int main()
//{
//	struct Student stu[3] = { {1,"name1","boy ",18},{2,"name2","boy ", 18},{3,"name3","girl",18} };
//
//	for (struct Student* p = stu; p < stu + 3; p++)
//	{
//		printf("num = %d, name = %s, sex = %s, age = %d\n", p->num, p->name, p->sex, p->age);
//	}
//
//
//	return 0;
//}

//typedef struct 
//{
//	int num;
//	char name[20];
//	float score[3];
//	float aver;
//}Student;
//
//
//void input(Student* stu)
//{
//
//	printf("please input!\n");
//
//	Student* p = stu;
//
//	for (p = stu; p < stu + 3; p++)
//	{
//		scanf("%d %s %f %f %f %f", &p->num, &p->name, &p->score[0], &p->score[1], &p->score[2], &p->aver);
//
//		printf("please input next!\n");
//	}
//	printf("input success!\n");
//}
//
//char* _max(Student* stu)
//{
//	char* maxName = (char*)malloc(20 * sizeof(char));
//	float maxScore = stu[0].aver;
//
//	for (Student* p = stu + 1; p < stu + 3; p++)
//	{
//		if (maxScore < p->aver)
//		{
//			maxScore = p->aver;
//			strcpy(maxName, p->name);
//		}
//	}
//
//	return maxName;
//}
//
//
//int main()
//{
//	//struct Student* stu[3] = (struct Student*)malloc(sizeof(struct Student) * 3);
//	//struct Student* stu = (struct Student*)malloc(sizeof(struct Student));
//
//	Student* stu = (Student*)malloc(sizeof(Student) * 3);
//
//	input(stu);
//
//	for (Student* p = stu; p < stu + 3; p++)
//	{
//		printf("num = %d, name = %s, aver = %.2f \n", p->num, p->name, p->aver);
//		printf("frist score = %.2f, second score = %.2f, third score = %.2f\n", p->score[0],
//			p->score[1], p->score[2]);
//
//		printf("----------------------------------------------------\n");
//	}
//
//	/*for (int i = 0; i < 1; i++)
//	{
//		printf("num = %d, name = %s, aver = %.2f \n", stu->num, stu->name, stu->aver);
//		printf("frist score = %.2f, second score = %.2f, third score = %.2f\n", stu->score[0],
//			stu->score[1], stu->score[2]);
//
//		printf("----------------------------------------------------\n");
//	}*/
//
//
//	printf("maxScore who is %s", _max(stu));
//
//	free(stu);
//	stu = NULL;
//	return 0;
//}

   
